/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Entidades_Persistencia;

import java.io.Serializable;
import java.math.BigDecimal;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author erikasv
 */
@Entity
@Table(name = "calificacion_promedio_proyecto")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "CalificacionPromedioProyecto.findAll", query = "SELECT c FROM CalificacionPromedioProyecto c"),
    @NamedQuery(name = "CalificacionPromedioProyecto.findByCodigoProyecto", query = "SELECT c FROM CalificacionPromedioProyecto c WHERE c.codigoProyecto = :codigoProyecto"),
    @NamedQuery(name = "CalificacionPromedioProyecto.findByCalificacionTotal", query = "SELECT c FROM CalificacionPromedioProyecto c WHERE c.calificacionTotal = :calificacionTotal"),
    @NamedQuery(name = "CalificacionPromedioProyecto.findByDocumentacionCompleta", query = "SELECT c FROM CalificacionPromedioProyecto c WHERE c.documentacionCompleta = :documentacionCompleta"),
    @NamedQuery(name = "CalificacionPromedioProyecto.findByObjetivosCompania", query = "SELECT c FROM CalificacionPromedioProyecto c WHERE c.objetivosCompania = :objetivosCompania"),
    @NamedQuery(name = "CalificacionPromedioProyecto.findByPresupuestoObjetivosProyecto", query = "SELECT c FROM CalificacionPromedioProyecto c WHERE c.presupuestoObjetivosProyecto = :presupuestoObjetivosProyecto"),
    @NamedQuery(name = "CalificacionPromedioProyecto.findByDuracionAdecuada", query = "SELECT c FROM CalificacionPromedioProyecto c WHERE c.duracionAdecuada = :duracionAdecuada"),
    @NamedQuery(name = "CalificacionPromedioProyecto.findByRentabilidadObjetivosCompania", query = "SELECT c FROM CalificacionPromedioProyecto c WHERE c.rentabilidadObjetivosCompania = :rentabilidadObjetivosCompania"),
    @NamedQuery(name = "CalificacionPromedioProyecto.findByViableFinancieramente", query = "SELECT c FROM CalificacionPromedioProyecto c WHERE c.viableFinancieramente = :viableFinancieramente"),
    @NamedQuery(name = "CalificacionPromedioProyecto.findByPlanDeRiesgos", query = "SELECT c FROM CalificacionPromedioProyecto c WHERE c.planDeRiesgos = :planDeRiesgos"),
    @NamedQuery(name = "CalificacionPromedioProyecto.findByCronogramaAdecuado", query = "SELECT c FROM CalificacionPromedioProyecto c WHERE c.cronogramaAdecuado = :cronogramaAdecuado"),
    @NamedQuery(name = "CalificacionPromedioProyecto.findByViableTecnicamente", query = "SELECT c FROM CalificacionPromedioProyecto c WHERE c.viableTecnicamente = :viableTecnicamente"),
    @NamedQuery(name = "CalificacionPromedioProyecto.findBySeRecomienda", query = "SELECT c FROM CalificacionPromedioProyecto c WHERE c.seRecomienda = :seRecomienda"),
    @NamedQuery(name = "CalificacionPromedioProyecto.findByObservaciones", query = "SELECT c FROM CalificacionPromedioProyecto c WHERE c.observaciones = :observaciones"),
    @NamedQuery(name = "CalificacionPromedioProyecto.findByEvaluadoresAsignados", query = "SELECT c FROM CalificacionPromedioProyecto c WHERE c.evaluadoresAsignados = :evaluadoresAsignados"),
    @NamedQuery(name = "CalificacionPromedioProyecto.findByEvaluadoresXCalificar", query = "SELECT c FROM CalificacionPromedioProyecto c WHERE c.evaluadoresXCalificar = :evaluadoresXCalificar")})
public class CalificacionPromedioProyecto implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Column(name = "codigo_proyecto")
    private Integer codigoProyecto;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Basic(optional = false)
    @NotNull
    @Column(name = "calificacion_total")
    private BigDecimal calificacionTotal;
    @Basic(optional = false)
    @NotNull
    @Column(name = "documentacion_completa")
    private BigDecimal documentacionCompleta;
    @Basic(optional = false)
    @NotNull
    @Column(name = "objetivos_compania")
    private BigDecimal objetivosCompania;
    @Basic(optional = false)
    @NotNull
    @Column(name = "presupuesto_objetivos_proyecto")
    private BigDecimal presupuestoObjetivosProyecto;
    @Basic(optional = false)
    @NotNull
    @Column(name = "duracion_adecuada")
    private BigDecimal duracionAdecuada;
    @Basic(optional = false)
    @NotNull
    @Column(name = "rentabilidad_objetivos_compania")
    private BigDecimal rentabilidadObjetivosCompania;
    @Basic(optional = false)
    @NotNull
    @Column(name = "viable_financieramente")
    private BigDecimal viableFinancieramente;
    @Basic(optional = false)
    @NotNull
    @Column(name = "plan_de_riesgos")
    private BigDecimal planDeRiesgos;
    @Basic(optional = false)
    @NotNull
    @Column(name = "cronograma_adecuado")
    private BigDecimal cronogramaAdecuado;
    @Basic(optional = false)
    @NotNull
    @Column(name = "viable_tecnicamente")
    private BigDecimal viableTecnicamente;
    @Basic(optional = false)
    @NotNull
    @Column(name = "se_recomienda")
    private BigDecimal seRecomienda;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 2147483647)
    @Column(name = "observaciones")
    private String observaciones;
    @Basic(optional = false)
    @NotNull
    @Column(name = "evaluadores_asignados")
    private int evaluadoresAsignados;
    @Basic(optional = false)
    @NotNull
    @Column(name = "evaluadores_x_calificar")
    private int evaluadoresXCalificar;
    @JoinColumn(name = "codigo_proyecto", referencedColumnName = "codigo", insertable = false, updatable = false)
    @OneToOne(optional = false)
    private Proyecto proyecto;

    public CalificacionPromedioProyecto() {
    }

    public CalificacionPromedioProyecto(Integer codigoProyecto) {
        this.codigoProyecto = codigoProyecto;
    }

    public CalificacionPromedioProyecto(Integer codigoProyecto, BigDecimal calificacionTotal, BigDecimal documentacionCompleta, BigDecimal objetivosCompania, BigDecimal presupuestoObjetivosProyecto, BigDecimal duracionAdecuada, BigDecimal rentabilidadObjetivosCompania, BigDecimal viableFinancieramente, BigDecimal planDeRiesgos, BigDecimal cronogramaAdecuado, BigDecimal viableTecnicamente, BigDecimal seRecomienda, String observaciones, int evaluadoresAsignados, int evaluadoresXCalificar) {
        this.codigoProyecto = codigoProyecto;
        this.calificacionTotal = calificacionTotal;
        this.documentacionCompleta = documentacionCompleta;
        this.objetivosCompania = objetivosCompania;
        this.presupuestoObjetivosProyecto = presupuestoObjetivosProyecto;
        this.duracionAdecuada = duracionAdecuada;
        this.rentabilidadObjetivosCompania = rentabilidadObjetivosCompania;
        this.viableFinancieramente = viableFinancieramente;
        this.planDeRiesgos = planDeRiesgos;
        this.cronogramaAdecuado = cronogramaAdecuado;
        this.viableTecnicamente = viableTecnicamente;
        this.seRecomienda = seRecomienda;
        this.observaciones = observaciones;
        this.evaluadoresAsignados = evaluadoresAsignados;
        this.evaluadoresXCalificar = evaluadoresXCalificar;
    }

    public Integer getCodigoProyecto() {
        return codigoProyecto;
    }

    public void setCodigoProyecto(Integer codigoProyecto) {
        this.codigoProyecto = codigoProyecto;
    }

    public BigDecimal getCalificacionTotal() {
        return calificacionTotal;
    }

    public void setCalificacionTotal(BigDecimal calificacionTotal) {
        this.calificacionTotal = calificacionTotal;
    }

    public BigDecimal getDocumentacionCompleta() {
        return documentacionCompleta;
    }

    public void setDocumentacionCompleta(BigDecimal documentacionCompleta) {
        this.documentacionCompleta = documentacionCompleta;
    }

    public BigDecimal getObjetivosCompania() {
        return objetivosCompania;
    }

    public void setObjetivosCompania(BigDecimal objetivosCompania) {
        this.objetivosCompania = objetivosCompania;
    }

    public BigDecimal getPresupuestoObjetivosProyecto() {
        return presupuestoObjetivosProyecto;
    }

    public void setPresupuestoObjetivosProyecto(BigDecimal presupuestoObjetivosProyecto) {
        this.presupuestoObjetivosProyecto = presupuestoObjetivosProyecto;
    }

    public BigDecimal getDuracionAdecuada() {
        return duracionAdecuada;
    }

    public void setDuracionAdecuada(BigDecimal duracionAdecuada) {
        this.duracionAdecuada = duracionAdecuada;
    }

    public BigDecimal getRentabilidadObjetivosCompania() {
        return rentabilidadObjetivosCompania;
    }

    public void setRentabilidadObjetivosCompania(BigDecimal rentabilidadObjetivosCompania) {
        this.rentabilidadObjetivosCompania = rentabilidadObjetivosCompania;
    }

    public BigDecimal getViableFinancieramente() {
        return viableFinancieramente;
    }

    public void setViableFinancieramente(BigDecimal viableFinancieramente) {
        this.viableFinancieramente = viableFinancieramente;
    }

    public BigDecimal getPlanDeRiesgos() {
        return planDeRiesgos;
    }

    public void setPlanDeRiesgos(BigDecimal planDeRiesgos) {
        this.planDeRiesgos = planDeRiesgos;
    }

    public BigDecimal getCronogramaAdecuado() {
        return cronogramaAdecuado;
    }

    public void setCronogramaAdecuado(BigDecimal cronogramaAdecuado) {
        this.cronogramaAdecuado = cronogramaAdecuado;
    }

    public BigDecimal getViableTecnicamente() {
        return viableTecnicamente;
    }

    public void setViableTecnicamente(BigDecimal viableTecnicamente) {
        this.viableTecnicamente = viableTecnicamente;
    }

    public BigDecimal getSeRecomienda() {
        return seRecomienda;
    }

    public void setSeRecomienda(BigDecimal seRecomienda) {
        this.seRecomienda = seRecomienda;
    }

    public String getObservaciones() {
        return observaciones;
    }

    public void setObservaciones(String observaciones) {
        this.observaciones = observaciones;
    }

    public int getEvaluadoresAsignados() {
        return evaluadoresAsignados;
    }

    public void setEvaluadoresAsignados(int evaluadoresAsignados) {
        this.evaluadoresAsignados = evaluadoresAsignados;
    }

    public int getEvaluadoresXCalificar() {
        return evaluadoresXCalificar;
    }

    public void setEvaluadoresXCalificar(int evaluadoresXCalificar) {
        this.evaluadoresXCalificar = evaluadoresXCalificar;
    }

    public Proyecto getProyecto() {
        return proyecto;
    }

    public void setProyecto(Proyecto proyecto) {
        this.proyecto = proyecto;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (codigoProyecto != null ? codigoProyecto.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof CalificacionPromedioProyecto)) {
            return false;
        }
        CalificacionPromedioProyecto other = (CalificacionPromedioProyecto) object;
        if ((this.codigoProyecto == null && other.codigoProyecto != null) || (this.codigoProyecto != null && !this.codigoProyecto.equals(other.codigoProyecto))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Entidades_Persistencia.CalificacionPromedioProyecto[ codigoProyecto=" + codigoProyecto + " ]";
    }
    
}
